package com.matt.service;
import com.matt.commons.dto.sso.StaffDTO;
import com.matt.controller.po.ClienteleSortCountPO;
import com.matt.domain.ChildrenContractInfoRecord;
import com.matt.domain.Contract;
import com.matt.domain.WorkDate;
import com.matt.foundation.dto.crm.ContractInfoDTO;
import com.matt.foundation.vo.ContractVo;
import com.matt.foundation.vo.ContractVoV2;
import com.matt.foundation.vo.WeekPaperAdviserVo;
import com.matt.foundation.vo.WeekPaperAreaVo;

import java.util.List;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2018/09/29
 * *******************************
 */
public interface CrmCountService {

    Long followClienteleNum(String staffId, String date);

    Long signAllContractNum(String staffId, String date);

    Long signFormalContractNum(String staffId, String date);

    Long signEffectiveContractNum(String staffId, String date);

    Long viewClienteleNum(String staffId, String date);

    Long increaseClienteleNum(String staffId, String date);

    Long arriveLeadsNum(String staffId, String date);

    Long areaContractNum(String areaId, String date);

    Long proceedContractNum(String staffId, String date);

    Integer pushFollowNum(String staffId);

//    WeekPaperAdviserVo getAdviserWeekData(StaffDTO staff, String date);
    WeekPaperAdviserVo getAdviserWeekData(String areaId, String staffId, String date);

    WeekPaperAreaVo getAreaWeekData(String areaId,String date);

    Long adviserChildCheckInCount(String staffId, String date);

    ContractVo findByClienteleIdDesc(String areaId, String clienteleId);

    List<ChildrenContractInfoRecord> updateContract(StaffDTO staffDTO, String clienteleId, String date, List<WorkDate> workDateList, Integer day,Integer type);

    List<ContractVoV2>  findByClienteleIdByList(String areaId , String clienteleId, String date);

//    List<Map>  attendanceCount(String areaId ,  String clienteleId,  String date, List<WorkDate> workDateList);
    List<ContractInfoDTO> attendanceCount(String areaId , String clienteleId, String date);

    List<ClienteleSortCountPO> clienteleSortCount(String areaIds , String date);

    List<Contract> findByClienteleIds(String clientelesIds);
}
